package innerdemo;

class  OutClass{
    private int date1=1;
    private int date2=2;
    private  int date3=3;

    /**
     * 实例内布类
     * 1.实例内部类当中 不能定义静态变量？？
     * 不能定义静态变量除非被final修饰
     *
     *2.实例内部类当中不能定义静态成员方法？？
     * 不能定义静态成员方法
     *
     *
     *3.实例化内部类
     * 外部类类名.内部类 内部类引用=外部类引用.new 内部类()
     * 4.如何访问内部类与外部类同名的成员变量
     * 外部类类名.this.外部类变量
     * this.内部类变量
     *如果是同名静态的变量就 类名.变量名
     */
    class InnerClass{


        public int date3=3333;
        public int date4=4;
        private int date5=5;
        public  static final  int date6=6;

        public InnerClass() {
            System.out.println("实例内部类的构造方法");
        }
        public void inneerFunc(){

            System.out.println("实例内部类的普通成员方法");
            System.out.println(OutClass.this.date1);
            System.out.println(OutClass.this.date2);
            System.out.println("外部类变量"+OutClass.this.date3);

            System.out.println("内部类变量"+this.date3);
            System.out.println(this.date4);
            System.out.println(this.date5);

        }
//        public static  void func(){
//
//        }

    }

}









public class Test {
    public static void main(String[] args) {
        OutClass.InnerClass innerClass= new OutClass().new InnerClass();
        innerClass.inneerFunc();
        System.out.println(innerClass.date4);


    }
}








